取消

源码库积分购买,一块钱一积分。

扫码支持

打开微信扫一扫,2两分钟内即可到账(注意:购买积分留言备注自己注册的邮箱),如有疑问请联系站长

打赏

取消

作者很不错,打赏一下

扫码支持
你的打赏,就是作者分享代码最大的动力[嘻嘻]

打开微信扫一扫,即可进行扫码打赏支持

servlet 3.0后实现servlet的两种方式_注解和SPI

  发布于
积分: 收藏
联系作者 :点击QQ图标联系作者寻求帮助,得到帮助解决问题后,记得打赏支持一下作者的辛苦劳动

介绍:在servlet 3.0之后给我们提供了几种去掉web.xml文件实现servlet、filter、listener的方式方法,其中主流的包含注解和SPI。
一、注解实现servlet功能:通过注解相对很简单,只要在extends HttpServlet的实现类中加上@WebServlet(value = {"请求"})即可。如下:
@WebServlet(value = {"/testServlet"})
public class TestServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.print("测试");
}
}

其中实现filter、listener的方式类似
二、SPI方式实现:
首先需要在项目的classpath录下新建META-INF/services文件夹,注意,文件夹名称一定要是以上名称。然后在此文件夹下新建一个文件,文件的名称必须为要扩展的接口全名,如下图

文件的内容必须是要实现该接口(此接口为上图的javax.servlet.ServletContainerInitializer)的实现类(全限定名,如 :com.myz.Test1)
最后实现类如下:
public class Test1 implements ServletContainerInitializer {
public void onStartup(Set<Class<?>> set, ServletContext servletContext) throws ServletException {
ServletRegistration.Dynamic registration = servletContext.addServlet("testSer",new TestServlet());
registration.addMapping("/testSer");
}
}


提交评论
本月评论榜
本月下载榜
本月收藏榜